iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
AI/ ML & Data

Web仔從數學角度學習 AI/ ML & Data系列 第 25

Day 25 - Web仔從數學角度學習 自編碼器

  • 分享至 

  • xImage
  •  

註:本文同步更新在Notion!(數學公式會比較好閱讀)

自編碼器 (Autoencoder) 是一種無監督學習模型,主要用於學習數據的有效表徵或特徵。其核心思想是通過一個神經網路將輸入數據壓縮為低維隱含表示,再通過解碼器將其重構為原始數據。自編碼器經常被用於數據降維、特徵提取和去噪等任務。

1. 自編碼器的結構

自編碼器的基本結構由兩部分組成:

https://ithelp.ithome.com.tw/upload/images/20241007/20168898tlnMFNll7g.png
這意味著網絡需要學習一種壓縮和重構的能力,同時保留數據中的關鍵特徵。

自編碼器可以表示為兩個映射函數:

https://ithelp.ithome.com.tw/upload/images/20241007/20168898ChJj6EzCfn.png
自編碼器的目標是使得輸入和重構之間的差異最小化,這可以通過最小化重構損失函數來實現。常用的損失函數是均方誤差(Mean Squared Error, MSE):

https://ithelp.ithome.com.tw/upload/images/20241007/20168898M3wOTzJII7.png

2. 自編碼器的訓練過程

自編碼器的訓練過程與普通的神經網絡類似,通過反向傳播算法來更新編碼器和解碼器的權重。

  • 前向傳播:輸入數據經過編碼器和解碼器後產生重構數據x'。
  • 損失計算:計算輸入數據與重構數據之間的損失,通常使用均方誤差。
  • 反向傳播:通過計算損失對權重的梯度,使用梯度下降法更新權重。

3. 數學原理:降維與特徵學習

自編碼器在數學上可以被看作是一種非線性降維技術。與主成分分析(Principal Component Analysis, PCA)等線性降維方法不同,自編碼器通過非線性激活函數可以學習數據的更複雜結構。

編碼器的過程實際上是在高維空間中找到一個低維的子空間,並學習如何將數據投影到這個子空間。這個隱含表示 z是數據的壓縮版本,具有比原始數據更少的維度。

https://ithelp.ithome.com.tw/upload/images/20241007/20168898gCMgNDSTa8.png

這裡的核心思想是學習數據中的重要特徵,並用少量的隱含單元來表示這些特徵。

4. 自編碼器的類型

根據不同的需求,自編碼器有多種變體,每種變體針對不同的應用場景和數據性質。

  • 稀疏自編碼器(Sparse Autoencoder):透過添加稀疏性約束,使得隱含單元中只有部分單元在每次傳播中被激活,這樣可以強迫模型學習數據中的關鍵特徵。
  • 去噪自編碼器(Denoising Autoencoder, DAE):在訓練過程中,對輸入數據進行隨機噪聲的添加,訓練自編碼器去除噪聲後重構原始數據,這樣可以提高模型對噪聲數據的魯棒性。
  • 變分自編碼器(Variational Autoencoder, VAE):一種生成模型,它通過將數據的分佈視為一個隱含的概率分佈,學習數據的隱含變量並進行生成。
  • 卷積自編碼器(Convolutional Autoencoder, CAE):專為處理影像數據設計,使用卷積層來替代全連接層,能夠更好地捕捉影像中的局部特徵。

結論

儘管自編碼器在學習數據表示和降維方面具有優勢,但其訓練過程中的非凸性問題可能導致訓練過程中出現局部最優解。此外,隱含層維度的選擇也至關重要,過少的隱含單元會導致信息丟失,而過多的單元會導致模型的重構能力過強,從而難以捕捉數據中的核心結構。


上一篇
Day 24 - Web仔從數學角度學習 深度信念網路DBN
下一篇
Day 26 - Web仔從數學角度學習 自回歸模型
系列文
Web仔從數學角度學習 AI/ ML & Data30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言